#include <stdio.h>
#include <math.h>
#include <SDL/SDL.h>
#include <SDL/SDL_image.h>
#include <SDL_tab.h>
#include <SDL_phelma.h>

int main(int a, char** b) { int ligne=500,col=660,i,j,nbligne,nbcol;
  unsigned char** im;
  SDL_Surface*  imsdl;
  SDL_Surface*  ecran;
  SDL_Rect pos;

  printf("Ce programme uilise la SDL et lit une image pgm, l'affiche dans fenetre, inverse ses pixels et affihe l'image inversee\n");
      /* Creation d'une fenetre de dimension dimx x dimy, couleurs sur 32 bits */
  //ecran=SDL_SetVideoMode(col,ligne, 32, SDL_HWSURFACE);
  ecran=newfenetregraphique(col,ligne);

	/* Afficher des images ppm, bmp etc;; 
  
  }
 

	/* Afficher des images qu'on traite : ici, on inverse la video */
  
  	/* On charge une image pgm, en niveau de gris, sur 8 bits */
  imsdl = IMG_Load("lena2.pgm"); 
  if (imsdl==NULL) { printf("Erreur de lecture image\n"); exit(0); }
	/* On definit la postion d'affichage */
  pos.x=10; pos.y=100;
	/* On colle cette image sur l'ecran : attention, elle est en memoire, pas a l'ecran */
  SDL_BlitSurface(imsdl,NULL,ecran, &pos);
  puts("Taper pour continuer"); getchar();

	/* Et maintenant, on affiche */
  SDL_Flip(ecran);
  puts("Taper pour continuer"); getchar();

  	/* On convertit cette image SDL en tableau 2D pour la traiter */
  im = SDLtoim8(imsdl);
  nbligne = imsdl->h; nbcol=imsdl->w;

	/* On parcourt toute l'image et on inverse chaque pixel */
  for (i=0; i<nbligne; i++) for (j=0; j<nbcol; j++) im[i][j]=255-im[i][j];

  	/* On colle cette nouvelle image sur l'ecran, en position  350 150 */
  afficheim8SDL(ecran,im,nbligne,nbcol,350,150);
  puts("Taper pour continuer"); getchar();
}

